#ifndef __ARPOBJECT_H__
#define __ARPOBJECT_H__

// ----------------------------------------------------------------------------
//
// ARPProtect version 1.0
//
// http://www.snoopspy.com, http://www.netlab.co.kr
//
// Copyright (c) NetworkLab Corporation All rights reserved
//
// ----------------------------------------------------------------------------

#include "ARPCommon.h"

namespace arp {

	// ----------------------------------------------------------------------------
	// type
	// ----------------------------------------------------------------------------
	typedef enum { asClosed, asOpening, asOpened, asClosing } State;

	// ----------------------------------------------------------------------------
	// ARPObject
	// ----------------------------------------------------------------------------
	class ARPObject
	{
	protected:
		void *owner;
		State state;
	public:
		ARPObject(void *owner = NULL);
		virtual ~ARPObject();
	public:
		bool open();
		bool close();
		bool active();
	protected:
		virtual bool doOpen() = 0;
		virtual bool doClose() = 0;
	};

};

#endif  __ARPOBJECT_H__